package com.itheima.web.exception;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import sun.plugin2.message.Message;

import java.util.HashMap;
import java.util.Map;

/**
 * 全局异常处理类
 */
@ControllerAdvice //声明此类是异常处理类
public class GlobalExceptionAdvice {
    /**
     * 前端和后台有规定
     *  ResponseEntity : 可以 封装状态值 和 响应的数据
     *  前后端 探花定死了一个返回的key message表示提示信息
     */
    //Business 业务异常(可预期异常)
    @ExceptionHandler(BusinessException.class)
    public ResponseEntity businessException(Exception e){
        e.printStackTrace();//输出到控制台

        Map map= new HashMap<>();
        map.put("message" , e.getMessage());// 抛出的异常信息
        return ResponseEntity.status(500).body(map); //body 响应体
    }

    //其他异常 (不可预期异常)
    @ExceptionHandler(Exception.class)
    public ResponseEntity otherException(Exception e){
        e.printStackTrace();//输出到控制台

        Map map= new HashMap<>();
        map.put("message" , "对不起,网络繁忙~请稍后再试");// 抛出的异常信息
        return ResponseEntity.status(500).body(map); //body 响应体
    }
}
